//
//  AIDCTools.h
//  分享demo
//
//  Created by pc-chtypd056 on 2018/8/28.
//  Copyright © 2018年 CTL. All rights reserved.
//

#import <LocalAuthentication/LocalAuthentication.h>

/**
 *  TouchID/FaceID 状态
 */
typedef NS_ENUM(NSInteger, AIDCStatus) {
    /**
     *  当前设备不支持TouchID/FaceID
     */
    AIDCStatusNotSupport = 0,
    /**
     *  TouchID/FaceID 验证成功
     */
    AIDCStatusSuccess = 1,
    
    /**
     *  TouchID/FaceID 验证失败
     */
    AIDCStatusFail = 2,
    /**
     *  TouchID/FaceID 被用户手动取消
     */
    AIDCStatusUserCancel = 3,
    /**
     *  用户不使用TouchID/FaceID,选择手动输入密码
     */
    AIDCStatusInputPassword = 4,
    /**
     *  TouchID/FaceID 被系统取消 (如遇到来电,锁屏,按了Home键等)
     */
    AIDCStatusSystemCancel = 5,
    /**
     *  TouchID/FaceID 无法启动,因为用户没有设置密码
     */
    AIDCStatusPasswordNotSet = 6,
    /**
     *  TouchID/FaceID 无法启动,因为用户没有设置TouchID/FaceID
     */
    AIDCStatusTouchIDNotSet = 7,
    /**
     *  TouchID/FaceID 无效
     */
    AIDCStatusTouchIDNotAvailable = 8,
    /**
     *  TouchID/FaceID 被锁定(连续多次验证TouchID/FaceID失败,系统需要用户手动输入密码)
     */
    AIDCStatusTouchIDLockout = 9,
    /**
     *  当前软件被挂起并取消了授权 (如App进入了后台等)
     */
    AIDCStatusAppCancel = 10,
    /**
     *  当前软件被挂起并取消了授权 (LAContext对象无效)
     */
    AIDCStatusInvalidContext = 11,
    /**
     *  系统版本不支持TouchID/FaceID (必须高于iOS 8.0才能使用)
     */
    AIDCStatusVersionNotSupport = 12
};

typedef void(^AIDCStatusBlock) (AIDCStatus status, NSError *error);

@interface AIDCTools : LAContext

+ (instancetype)shared;

- (void)showAIDCWithStatus:(AIDCStatusBlock)statusBlock;

@end
